Strategies for Predicate-Aware Register Allocation
نویسنده
چکیده
For predicated code a number of predicate analysis systems have been developed like PHG, PQA or PAS. In optimizing compilers for (fully) predicated architectures like the Itanium® 2 processor, the primary application for such systems is global register allocation. This paper classifies predicated live ranges into four types, develops strategies based on classical dataflow analysis to allocate register candidates for all classes efficiently, and shows that the simplest strategy can achieve the performance potential provided by a PQSbased implementation. The gain achieved in the Intel® production compiler for the CINT2006 integer benchmarks is up to 37.6% and 4.48% in the geomean.
منابع مشابه
Fine Grained Register Allocation for EPIC Processors With Predication
In this paper, we study the impact of liveness granularity, the priority function and accurate interference graph construction on register allocation performance on EPIC processors with predication. Fine grained live ranges reduce the number of interferences and hence allow both faster compilation and runtime execution. Similarly, a predicate-aware priority function gives a better register allo...
متن کاملRegister allocation in hyper-block for EPIC processors
A hyper-block represents a linear sequence of predicated instructions with a single entry and multiple exit points. To exploit the high level of Instruction Level Parallelism(ILP) in EPIC architectures, hyper-blocks are often used as the unit of program presentation. In this paper, we study the impact of predication and the hyper-block representation in the register allocation phases. Our contr...
متن کاملRegister Allocation Aware Instruction Selection
In existing optimization frameworks, compiler passes are not tightly integrated and often work at cross purposes. In this report we describe an integration framework for the key backend compiler optimizations of register allocation and instruction selection: Register Allocation Aware Instruction Selection (RAISE). We discover that the fundamental building block of the RAISE framework, register ...
متن کاملTowards Global Scheduling and Register Allocation Using Predicated Execution
This paper presents an approach for register allocation and scheduling which relies on three main ideas: global optimization, solution space exploration and on-the-fly generation of a symbolic state machine. To allow global optimizations while preserving semantics, the traditional notion of control dependence is replaced by the notion of predicate. In our approach, predicates are used not only ...
متن کامل